/**
 * 全局自定义错误拦截中间件
 * @param {object} app koa 实例
 * 
 */

module.exports = (app) => {
    return async (ctx, next) => {
        try {
            await next();
        } catch (error) {
            // 异常处理
            const { status, message, detail } = error;

            app.logger.error('[-- exception --]:', error);
            app.logger.error('[-- exception --]:', status, message, detail);

            if (message && message.indexOf('template not found') > -1) {
                // 页面重定向
                ctx.status = 302 //临时重定向 301 一直重定向
                ctx.redirect(`${app.options?.homePage}`);
                return
            }

            const resBody = {
                success: false,
                code: 500,
                msg: '网络异常，请稍后重试！'
            }
            ctx.status = 200;
            ctx.body = resBody;

        }

    }
}